Shell Script 判斷檔案狀態的 if 條件句

在 Bash 或 Shell Script 裡,可以用下面幾個參數來判斷檔案的狀態,在 if statement 中非常的實用

  • -e:當檔案存在時為真
  • -d:當檔案類型是資料夾時為真
  • -f:當檔案存在且類型是普通檔案時為真(非連結、資料夾、device node)
  • -h:當檔案存在且類型是符號連結時為真
  • -s:當檔案大小不等於 0 時為真
  • -u:當檔案有 suid 時為真
  • -g:當檔案有 sgid 時為真
  • -r:當檔案可讀時為真
  • -w:當檔案可寫時為真
  • -x:當檔案可執行時為真

用法

檢查 /etc/passwd 這個檔案是否存在

#!/bin/bash

if [[ -e '/etc/passwd' ]]; then
  echo "passwd exist "
else
  echo "file not found"
fi

詳細的參數可參考 man 1 test

wade Written by:

本站站長